C/C++中“位与”运算讨论奇偶

& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

int fun(int n)
{
      return  (n&1);       //返回1表示奇数,0表示偶数。  
}

根据位与的运算规则,如果两个相应的二进制位都为1,则改为的结果值为1,否则为0.而n&1,其实关键在于最后一位二进制位,它决定着n是奇数还是偶数。即n与1进行位运算无论n有多少位,只要最后一位是1,最后一位是1则意味着n一定是个奇数(2k+...+1一定是奇数),此时与1进行位与运算返回值是1;否则返回值是0,则表示n是偶数。位运算比%运算更加快捷,学会使用位与运算判断奇偶。

总之记住:n&1返回值是1则表示n是奇数,返回值是0则表示n为偶数。

posted @ 2015-03-09 09:48  jzwong  阅读(451)  评论(0编辑  收藏  举报